package com.zzg.springboot.command.line;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import org.springframework.util.ResourceUtils;
/**
 * 
 * @ClassName:  MyCommandLineRunner   
 * @Description:springboot项目服务启动时,实现预加载功能。
 * @author: 世纪伟图 -zzg
 * @date:   2018年11月6日 下午2:33:49   
 *     
 * @Copyright: 2018 www.digipower.cn 
 * 注意：本内容仅限于深圳市世纪伟图科技开发有限公司内部使用，禁止用于其他的商业目的
 */
@Component
@Order(value=1)
public class MyCommandLineRunner implements CommandLineRunner {

	@Override
	public void run(String... args) throws Exception {
		File file = ResourceUtils.getFile("classpath:images/katong.png");
		getData(file.getPath());

	}
	
	/**
	 * 
	 * @Title: getData   
	 * @Description: 输出指定图片，字符图像 
	 * @param: @param path      
	 * @return: void      
	 * @throws
	 */
	public static void getData(String path) {
        try {
            //获取图像资源，转成BufferedImage对象
            BufferedImage bimg = ImageIO.read(new File(path));
            //创建一个二维数组，用来存放图像每一个像素位置的颜色值
            int[][] data = new int[bimg.getWidth()][bimg.getHeight()];
            //以高度为范围，逐列扫描图像，存进数组对应位置
            for (int i = 0; i < bimg.getWidth(); i++) {
                for (int j = 0; j < bimg.getHeight(); j++) {
                    data[i][j] = bimg.getRGB(i, j);//得到的是sRGB值，4字节
                }
            }
            //将数组旋转90°输出，实现逐行输出图像
            for (int i = 0; i < bimg.getHeight(); i++) {
                for (int j = 0; j < bimg.getWidth(); j++) {
                    if (data[j][i] != -1) {//有颜色输出
                        System.out.print("  ");
                    } else {            //无颜色输出
                        System.out.print("**");
                    }
                }
                System.out.println();//每行结束换行
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


}
